package cn.life.business.user.service;

import cn.life.business.user.entity.vo.LoginUserVo;
import cn.life.business.user.entity.vo.UserInfoVo;
import cn.life.common.entity.model.CMessage;
import cn.life.business.user.entity.po.LoginUser;
import cn.life.business.user.entity.po.UserInfo;
import cn.life.business.user.entity.vo.RegisterUserVo;
import cn.life.common.entity.model.MyUserInfo;
import cn.life.common.entity.po.ProjectPo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Description:    用户服务层
 * @Author 李佳明
 * @Date 2018/7/5 0005.6:56.
 */
public interface UserService {

    /**
     * @Description:    注册用户
     *
     * @param user
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/7/5 0005 6:58
     */
    CMessage registerUser(RegisterUserVo user);
    /**
     * @Description:    用户登陆
     *
     * @param loginUser
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/7/16 0016 上午 9:47
     */
    CMessage login(HttpServletRequest request, HttpServletResponse response, LoginUser loginUser) throws IOException;
    /**
     * @Description:    获取用户信息
     *
     * @param loginUser
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/7/10 0005 00:33
     */
    CMessage getUserInfo(UserInfo loginUser);
    /**
     * @Description:    修改用户信息
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/7/16 0016 上午 9:45
     */
    CMessage updateUser(UserInfo userInfo);
    /**
     * @Description:    获取用户列表
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/8/13 0013 下午 1:34
     */
    CMessage getUserList(UserInfo userInfo);
    /**
     * @Description:    获取用户信息
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/7/10 0005 00:33
     */
    CMessage queryDetail(UserInfo userInfo);
    /**
     * @Description:    修改用户权限与账号信息
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/8/14 0014 下午 1:30
     */
    CMessage updateUserRole(UserInfoVo userInfo);
    /**
     * @Description:  删除用户信息
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/8/15 0015 下午 1:47
     */
    CMessage deleteUser(UserInfo userInfo);
    /**
     * @Description:    获取项目下的用户列表
     *
     * @param userInfo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/8/21 0021 上午 9:51
     */
    CMessage getProUserList(UserInfo userInfo);
    /**
     * @Description:    修改密码
     *
     * @param loginUserVo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018-09-03 上午 10:41
     */
    CMessage updatePassword(LoginUserVo loginUserVo,MyUserInfo myUserInfo);
    /**
     * @Description:    查询提料单审核人员列表
     *
     * @param projectPo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/11/29 0029 23:10
     */
    CMessage queryMaterialAuditUserList(ProjectPo projectPo);
    /**
     * @Description:    查询进度的审核人员列表
     *
     * @param projectPo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/12/1 0001 9:54
     */
    CMessage queryScheduleAuditUserList(ProjectPo projectPo);
    /**
     * @Description:    查询项目下技术监管人员列表
     *
     * @param projectPo
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/12/1 0001 23:40
     */
    CMessage queryTechnologyManagerList(ProjectPo projectPo);
    /**
     * @Description:    查询用户质量安全合格率
     *
     * @param
     * @return:
     *
     * @Author 李佳明
     * @Date 2018/12/9 0009 21:39
     */
    CMessage queryUserStatistics(ProjectPo projectPo);
}
